def quick_sort(arr):
    """
    快速排序算法的实现
    参数:
        arr: 需要排序的列表
    返回:
        排序后的列表
    """
    if len(arr) <= 1:
        return arr
    
    pivot = arr[len(arr) // 2]  # 选择中间元素作为基准
    left = [x for x in arr if x < pivot]  # 小于基准的元素
    middle = [x for x in arr if x == pivot]  # 等于基准的元素
    right = [x for x in arr if x > pivot]  # 大于基准的元素
    
    return quick_sort(left) + middle + quick_sort(right)

def main():
    # 测试用例
    test_cases = [
        [64, 34, 25, 12, 22, 11, 90],
        [1],
        [],
        [1, 1, 1, 1],
        [5, 4, 3, 2, 1],
        [1, 2, 3, 4, 5]
    ]
    
    for arr in test_cases:
        sorted_arr = quick_sort(arr.copy())
        print(f"原始数组: {arr}")
        print(f"排序后: {sorted_arr}")
        print("-" * 50)

if __name__ == "__main__":
    main()
